package itheima10;

import java.util.List;

/*
    定义Thread子类ChiHuoThread,覆盖重写run方法,指定线程任务(吃包子)
    吃货: 吃包子
    1.判断是否有包子
    2.没有: 等待
    3.有: 吃一个包子
        唤醒包子铺,包包子
 */
public class ChiHuoThread extends Thread{
    //定义成员变量,通过构造方法赋值
    private List<String> list;


    public ChiHuoThread(String threadName,List<String> list) {
        //将线程名字传到父类，调用时会显示出来
        super(threadName);
        this.list = list;
    }
    @Override
    public void run() {
        while(true) {
            synchronized (list) {
                //1.判断是否有包子
                if(list.size()==0) {
                    //2.没有: 等待
                    try {
                        list.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
                //3.有: 吃一个包子//集合删除第一个元素
                String bz = list.remove(0);
                System.out.println("吃货: "+Thread.currentThread().getName()+" 又吃了一个: "+bz);
                // 唤醒包子铺,包包子
                list.notify();

            }
        }
    }
}
